A virtual world is a computer simulation of an environment, referred to as a virtual environment, that allows a user to interact with the virtual environment through the use of a variety of interfaces. A virtual world is typically experienced by a user via a display and speakers so that visual and auditory elements are represented to the user. However, virtual worlds may provide other types of information, such as haptic information (i.e. force feedback), to the user as well. Interaction with the virtual environment may be accomplished via manipulation of a conventional keyboard/mouse combination or via a variety of other input devices, such as gloves, touchscreens, microphones, musical instruments, dance mats, etc. One example of a virtual world includes Second Life™ produced by Linden Research, Inc., of San Francisco, Calif.
In order to display a virtual world, many different assets are displayed to the user by a virtual world application (VWA). Virtual world assets may include, for example, 3-dimensional models, textures, sounds, animations, particle effects, fonts, maps, or configuration files. When a VWA is executed, it searches a locally accessible memory location for the assets needed in order to display the portion of the virtual world being viewed by the user. For example, the VWA may load assets from a hard disk drive or other memory device local to the VWA before displaying the virtual world. However, for online VWAs, assets are not initially stored locally. Rather, assets are stored in a remote location, such as a database or web server.
One problem associated with conventional VWAs is that the process of downloading assets once it is determined that they are needed unnecessarily increases the time period between initializing the VWA and displaying the virtual world. A desirable feature of VWAs is for the virtual world to be displayed as soon as possible, typically no longer than 3 minutes after initializing the VWA. Because conventional VWAs download assets on as as-needed basis before displaying the virtual world, the user may experience unsatisfactory delays in displaying the virtual world. This problem may be exaggerated in complex virtual worlds containing a large number and/or variety of assets needed for displaying even small portions of the virtual world.
Another problem with conventional VWAs is that if an asset is needed for execution but has not yet been downloaded, a conventional VWA may continue to operate, thereby leading to undesirable behaviors. Because conventional VWAs may not perform correctly when a desired file is not present, conventional VWAs may be said to lack file-not-present tolerance. For example, a user (via the user's avatar) may approach a virtual building, character, or other object within a virtual world, where the assets needed to display the object have not been downloaded. As a result, the object cannot be immediately displayed until the assets have been downloaded. However, because the virtual world may continue to be displayed, the user may walk through or even past the object before it is displayed. Thus, the user may fail to properly interact with the virtual world because of the lag time associated with downloading assets yet providing no indication to the user that a virtual object exists but has not yet been displayed.
Another problem is that it is difficult to modify an existing VWA for high reliability downloading of background assets when the VWA was not originally designed for this feature. For example, because conventional VWAs expect that all assets will be locally available from the start, complex software coding and debugging may be performed in order to retrofit a background asset downloading system onto a conventional VWA.
Accordingly, in light of the above described difficulties, there exists a need for improved methods, systems, and computer readable media for high reliability downloading of background assets using a manifest in a virtual world application.